Challenge sur les tableaux

Header :

Pour la première fois, nous allons faire le cours de manière différentes pour ressembler de plus en plus à votre futur métier. Avant je donnais cours tout le temps comme ça, maintenant je donne un peu plus la main au début, mais à partir de maintenant, vous devrez vous y faire. Ici, je vais encore vous aider un peu, mais vous devrez vous documenter vous même. Je suis là plus pour vous aider, vous coacher, et de moins en moins "pour vous donner cours". On arriver vers la fin de la théorie, je veux de moins en moins vous prendre par la main, car demain vous serez en stage sans prof et vous devrez trouver les infos vous même !


Body

Objectifs

Développer seul une application pour un professeur :

Ecrivez un programme PHP qui demande à l'utilisateur de saisir les notes de plusieurs élèves pour différents devoirs. Ensuite, affichez les notes de chaque élève pour chaque devoir. Calculez également la moyenne de chaque élève et la moyenne de chaque devoir. Enfin, déterminez quel élève a la meilleure moyenne et quel devoir a la meilleure moyenne. Lors de l'affichage, affichez les notes des élèves en fonction de la longueur de leur prénom, si 2 prénoms font la même longueur, c'est l'ordre alphabétique qui prime !

Quand vous avez fini, aider les autres !

Lorsque tout ce qui est demandé est terminé, aidez vos copains, mais ne faites pas le code à leur place. Demandez leur code, analysez-le et expliquez les soucis en prenant en compte leur manière de coder pour arriver au bon résultat avec leur propre manière de faire !

Exemple :

Entrée (saisie de l'utilisateur) :

Nombre d'élèves : 3

Nombre de devoirs : 4

Saisie noms et des notes pour chaque élève et chaque devoir :

Entrez le nom pour l'élève 1 : ...
Entrez le nom pour l'élève 2 : ...
Entrez le nom pour l'élève 3 : ...

Entrez la note pour l'élève ..., devoir 1 : 15

Entrez la note pour l'élève ..., devoir 2 : 18

... (répétez ça jusqu'à la fin)

Entrez la note pour l'élève ..., devoir 4 :

Sortie (affichage final du programme) :

Notes des élèves pour chaque devoir :

Élève ... : 15, 18, ...

Élève ... : 16, 20, ...

Élève ... : 14, 17, ...

Moyenne de chaque élève :

Élève ... : moyenne = ...

Élève ... : moyenne = ...

Élève ... : moyenne = ...

Moyenne de chaque devoir :

Devoir 1 : moyenne = ...

Devoir 2 : moyenne = ...

Devoir 3 : moyenne = ...

Meilleure moyenne parmi les élèves : ...

Meilleure moyenne parmi les devoirs : ...

Restrictions et particularités

  • Ne pas utiliser les fonction min et max déjà faites, vous devez trouver vous même l'algorithme pour déterminer la valeur minimale et maximale dans un tableau !
  • Même chose pour la moyenne !
  • Pas possibilité d'utiliser une boucle foreach ! Uniquement des boucles for !
  • Pas de crash, pas de sortie du programme non voulue, une fois que le programme est terminé, demandez à l'utilisateur si il veut recommencer pour une autre classe ou si il veut quitter le programme, c'est le seul moyen de quitter le programme !
  • Veillez à bien vérifier que l'utilisateur entre uniquement des chiffres, n'oubliez pas les messages d'erreurs, etc !
  • Utiliser les tableaux à 2 dimensions.
  • Vous devez travailler seul.
  • Vous ne pouvez pas dupliquer du code, tant que possible, créez des fonctions ! Dans votre programme principal, il ne devrait y avoir presque que des déclaration de variable et des appels de fonctions, le principal de votre code doit se passer dans vos fonctions !
    • Fonction moyenne
    • Fonction pour déterminer le maximum
    • Fonction pour déterminer le minimum
    • Fonction pour les différentes entrées
    • Fonction pour les différentes sorties

Outils

Pour réussir cet exercice, vous aurez besoin de la documentation sur les tableaux avec les points suivants :

Vous pouvez aussi bien sûr utiliser google, mais pas chatGPT ! C'est un challenge, le but ici est de faire fonctionner votre cerveau pour résoudre l'algo ! Si vous réussissez cet exercice, vous avez tout ce qu'il faut pour faire un bon développeur !

Conseils :

  • Commencer petit, essayez déjà de faire ceci : A l'aide d'un tableau et de boucles, demandez à l'utilisateurs de rentrer des notes d'élèves sur 20 jusqu'à ce que l'utilisateur rentre une note négative. Stockez toutes les notes dans un tableaux, à la fin affichez toutes les notes des élèves en mettant "Eleve 1 : x/20, Eleve 2 : x/20,..." Puis donnez la moyenne de la classe sur 20, la note du meilleur élève et la note du moins bon élève
  • Rajoutez les notions après cette première partie petits à petits
  • Développez d'abord en spaghetti et refactorisez quand ça marche en fonction. Ensuite assurez vous que ça marche en fonction, et ensuite vous passez à la suite.
  • Faites la vérifications des données et des bugs à chaque nouvelle implémentation, et pas quand tout est fini ! Chaque module doit fonctionner parfaitement avant d'attaquer le suivant.
  • Bonne chance, ça ne sera pas facile, c'est un exercice difficile !